

// 最基础的实现深拷贝的方法： JSON.parse(JSON.stringify());
// 缺陷:比如拷贝其他引用类型、拷贝函数、循环引用等情况。


function clone(target) {  // 乞丐版
    if (typeof target === 'object') {
        let cloneTarget = {};
        for (const key in target) {  // 对键进行循环 并在下面进行递归进入深层拷贝
            cloneTarget[key] = clone(target[key]);
        }
        return cloneTarget;
    } else {
        return target;  // 缺点 会将Array[]形式的数组转化成 Object{}形式
    }
};

// ----------------------------- 测试
const target = {
    field1: 1,
    field2: undefined,
    field3: 'ConardLi',
    field4: {
        child: 'child',
        child2: {
            child2: 'child2'
        }
    },
    field5: [1, 2]
};

const result = clone(target);
// result.field5[0] = 99;
// console.log(result.field5[0]);
result.field4.child = 'yyds'
console.log(result);
console.log(target);




let objs = {
    mother: {
      val: 50,
      father: {
        val: 90
      },
    },
    father: {
      val: 90
    }
  }
  
  var res = [];
  function findRes(target) {
    for (const key in target) {
      if (typeof target[key] === 'object') {
        findRes(target[key]);
      } else {
        if (key === 'val') {
          res.push(target[key]);
        }
  
      }
    }
    return
  }
  
  findRes(objs);
  
  function findMax(res){
    res.sort();
    return res[res.length-1];
  }
  
  var result = findMax(res);
  console.log(result)
  
  // console.log(Math.max.apply(null,res));